import { LogoutStatusEnum } from '@/constant/enum'

export interface UserDto {
    alipayOpenId: string
    bankCardImg: string
    bankCardNo: string
    bankCardNoNetwork: string
    comparePhoneFlag: number
    createTime: string
    idCardNo: string
    isAttention: number
    isOpenSalaryCard: number
    mpOpenid: string
    openBankBranch: string
    openBankCity: string
    openBankName: string
    openId: string
    ownIdCardBack: string
    ownIdCardFront: string
    phone: string
    sex: string
    userHeadUrl: string
    userId: number
    userName: string
}

export interface AppletUserInfoDto {
    sessionKey: string
    openid: string
    unionid: string
    token: string
}

export interface DecryptPhoneDto {
    code: string
    mobile: string
}

export interface QueryUserInfoDto {
    advanceAmount: number
    workCount: number
    jobCount: number
    stubCount: number
}

export interface UserDataDto {
    id: number
    userId: number
    realName: string
    othersIdCardNo: string
    idCardFront: string
    idCardBack: string
    createTime: string
    createUserId: number
    updateTime: string
    updateUserId: number
    comparePhoneFlag: number
    params: Params
    emergencyContact: string
    nowAddress: string
    emergencyContactPhone: string
    emergencyContactAddr: string
    healthCard: string
    permanentResidenceAddress: string
    openBankName: string
    openBankCity: string
    openBankBranch: string
    bankCardImg: string
    alipayAccount: string
    bankCardNo: string
    openBankAddress: string
}

export interface Params {
    realName: string
    emergencyContactPhone: string
    bankCardImg: string
    emergencyContact: string
    othersIdCardNo: string
    idCardFront: string
    idCardBack: string
}

export interface FindUserDto extends UserDto {
    id: number
    userHeadUrl: string
    nation: string
    cardholderName: string
    cardholderIdcard: string
    bankCardIs: number
    isDelete: number
    loginTime: string
    createUserId: number
    updateTime: string
    openSalaryCardTime: string
    updateUserId: number
    nickName: string
    openBankAddress: string
    healthCard: string
    blueWorkRecordResultVos: string
    checkFlag: number
    params?: Params
    userIds: string
    platform: string
}

export interface OcrDto {
    idCardInfo: IdCardInfoFrontDto & IdCardInfoBackDto
    url: string
}

interface IdCardInfoFrontDto {
    address: string
    birthday: string
    code: string
    name: string
    nation: string
    sex: string
}

interface IdCardInfoBackDto {
    expiryDate: string
    issue: string
    issueDate: string
}

export interface RegisterFailDto {
    code: number
    msg: string
}

export interface LogoutRecordDto {
    id: number
    userName: string
    idCardNo: string
    originPhone: string
    idCardFront: string
    userPhoto: string
    registTime: string
    applyRemark: string
    createTime: string
    openId: string
    userId: number
    phone: string
    status: LogoutStatusEnum.PROCESS | LogoutStatusEnum.SUCCESS | LogoutStatusEnum.FAIL
    rejectRemark: string
    isShow: number
}
